package cn.tedu.stage2.collection;

import java.util.ArrayList;
import java.util.Collection;

/**
 * 集合受元素equals方法影响的操作
 */
public class CollectionDemo2 {
    public static void main(String[] args) {
        Collection o = new ArrayList();
        o.add(new Point(1,2));
        o.add(new Point(3,4));
        o.add(new Point(5,6));
        o.add(new Point(7,8));
        o.add(new Point(9,10));
        o.add(new Point(1,2));
        /*
            集合重写了toString方法，格式为:[元素1.toString(), 元素2.toString(), ...]
            如果希望通过打桩输出集合看到元素的有效信息，要妥善重写元素的toString方法。
         */
        System.out.println(o);

        Point p = new Point(1,2);
        /*
            boolean contains(Object o)
            集合判断是否包含给定元素o.
            判断的逻辑是该元素是否集合现有元素存在equals比较为true的情况，存在则认为
            包含。
         */
        boolean contains = o.contains(p);
        System.out.println("集合是否包含元素p:"+contains);

        /*
            remove方法也是删除与集合元素equals比较为true的。
            但是需要注意，对于List集合这种可以存放重复元素的而言，仅会删除一个元素(前面
            最先equals比较为true的元素)。
         */
        o.remove(p);
        System.out.println(o);
    }
}
